Cloud based services leverage continuous integration and deployment, meaning that code changes are being made on a constant basis and those changes are deployed from a developer's computer out to production at a rapid cadence. Some cloud based services are set up in farms. That is, a dedicated number of servers perform tasks associated with providing the cloud based service. When upgrades or other changes are made to a cloud based service that is serving thousands of clients, the servers cannot be all shut down, software modified, and all servers turned back on again.
Some services may support a swing in order to perform an upgrade. In other words, a new server farm may need to be created with all the data needing to be migrated over. For patching, each sever may need to be updated individually with custom orchestration to avoid downtime. Thus, some customers may avoid this complex process by skipping upgrades and patching as much as possible, which in return may result in users not getting the latest features. Computing only upgrade is a swing technology to roll out new services. The hardware cost computing only upgrade may be relatively high—a hardware buffer of identical size may need to exist before an upgrade can take place. For example, about 25% of the machines may have to be reserved for such an upgrade buffer. Another challenge may be meeting guaranteed downtime requirements for tenants.